#include "attribute.h"
#include <cstdio>

tdf_attribute::tdf_attribute():    parent_table( NULL ){}
tdf_attribute::tdf_attribute(string* str,tdf_content_table* ct): parent_table( ct ){
    if( ct ){
        index = ct->attributesNT.addName(str);
    }
}
tdf_attribute::tdf_attribute(char* str,tdf_content_table* ct): parent_table( ct ){
    if( ct ){
        index = ct->attributesNT.addName(str);
    }
}
tdf_attribute::tdf_attribute(FILE* infile,tdf_content_table* ct): parent_table( ct ){
    fread( &index, sizeof( unsigned int ), 1, infile );
    value.importVariant(infile);
}
tdf_attribute::~tdf_attribute(){}

void tdf_attribute::copy(tdf_attribute* orig){
    index = orig->getIndex();
    parent_table = orig->getParentTable();
    value.copy(&(orig->value));
}

string tdf_attribute::getName(){
    if( !parent_table ) return "";
    return parent_table->attributesNT.getName(index);
}
unsigned int tdf_attribute::getIndex(){
    return index;
}
tdf_content_table* tdf_attribute::getParentTable(){
    return parent_table;
}

void tdf_attribute::exportAttribute(FILE* file ){

    fwrite( &index, sizeof( unsigned int ), 1, file );
    fflush( file );
    value.exportVariant(file);

}
